package com.rc.web.controller;


import com.rc.pojo.po.Poems;
import com.rc.web.service.PoemsService;
import com.rc.web.service.impl.AiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

/**
 * 有关ai的使用接口
 */
@CrossOrigin(origins = "*")  //这个注解是允许跨域请求的
@RestController
@RequestMapping("/ai")
public class AiController {

    @Autowired
    private AiService aiService;
    @Autowired
    private PoemsService poemsService;

    /**
     * 园课堂的ai助的正常对话
     * @param user 用户的问题
     * @return 返回ai的回答
     * @throws Exception
     */
    @PostMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
    public SseEmitter chatStream(@RequestParam String user) throws Exception {
        String prompt = "";
        if(user.length()<20){
            prompt = "。以上是用户的提问，你需要扮演田园课堂的ai助手回答问题，且跟偏向于田园课堂的风格。";
        }
        else{
            prompt = "。以上是用户给出的古诗，你需要认真解读这首诗的意思，并详细的描述这首诗的内容和古诗的背景。";
        }

        return aiService.vivogptStream(user ,prompt);
    }

    /**
     * ai生成古诗的功能
     * @param user 图片识别出的字段
     * @return  返回ai根据提示词搜索到的诗句
     * @throws Exception
     */
    @PostMapping(value = "/poem", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
    public SseEmitter poemStream(@RequestParam String user) throws Exception {

        String prompt = "。根据前面的提示词，创作一首提及提示词的现代诗歌。" ;

        return aiService.vivogptStream(user,prompt);
    }

    /**
     * 从数据库中随机获取一首古诗
     * 和柑橘，水稻，小麦
     */
    @PostMapping(value = "/poem/random")
    public Poems randomPoem(@RequestParam String user) throws Exception {

        return poemsService.getRandomPoem(user);
    }

}